1. Field of the Invention
The present invention relates generally to data modification apparatus in a digital data processing system, and more specifically to apparatus in an input-output system including a terminal keyboard and a terminal display for displaying data to be modified by a user of the system, permitting a user to modify data by means of keystrokes from a terminal, and displaying the results of the modifications on a terminal display.
2. Description of Prior Art
In the prior art, users of computer systems have modified data from a terminal by means of general-purpose editing programs and single-purpose editing functions for specific applications.
General-purpose editing programs provide a broad array of functions for modifying data. Such programs work by receiving editing commands from a terminal. In response to an editing command, the editing program displays data, modifies data, and displays modified data. Many general-purpose editing programs have a macro capability, i.e, they allow users to make and execute macros, that is, programs consisting of sequences of editing functions. Such a macro capability thus provides a user with a way of making new editing functions out of combinations of editing instructions. Some general-purpose editing programs also provide ways of associating a macro with a key of a terminal, so that a user can execute the macro by means of a single keystroke. Using this capability, a user may make a general-purpose editing program serve a variety of special purposes.
However, the power of a general-purpose editing program is not without cost. A general-purpose editing program requires a considerable amount of memory for its code, and commencing and terminating operation of a general-purpose editing program require a considerable amount of time. The size of a general-purpose editing program limits its usefulness in applications where memory is at a premium, for example in "smart" terminals, i.e., terminals having local memory and processing capabilities. The time required to commence and terminate operation of a general-purpose editing program is excessive in programs which do not have editing as their main purpose, but instead perform a few editing operations in the course of other operations.
Programs which perform a few editing operations are particularly common in interactive applications, that is, where a program responds to commands or data from a terminal. In order for the program to be useful, a user must be able to see what he has input into the terminal and must be able to modify his input if it is in error. Since time and space requirements of a general-purpose editing program are excessive for such applications, the prior art has incorporated simple editing capabilities into many special-purpose programs. By so doing, the prior art has avoided overhead involved in using the general purpose editor, but has increased the complexity of special-purpose programs and has thereby made them more difficult to write and maintain. To some extent, too, including simple editing capabilities in special-purpose programs wastes memory space: each special-purpose program may require essentially the same editing functions, but because there are minor differences, the editing functions cannot be combined into a single program used by all.
The trend towards digital data processing systems whose components are connected into networks has increased the need for data display and modification apparatus which have the generality and availability of the general-purpose editors but do not have their overhead. In network systems, each transmission of data over the network involves considerable overhead, and consequently, efficiency requires as few transmissions as possible to accomplish a given task. One way to reduce the number of transmissions is to distribute processing capability throughout a system, for example, by providing terminals in a system with local microprocessors and memory. In such a system, modifications on data stored in a terminal's memory may be performed using the terminal's microprocessor. Consequently, modification of data such as a line of ASCII characters may require only two transmissions: one to transmit data to be modified to a terminal, and a second to transmit modified data from the terminal to other parts of the system.
Neither approach used by the prior art to data display and modification is advantageous is a network system. Both general-purpose editing programs and special-purpose programs containing data display and modification components are generally too large to fit into the limited memory available in an individual terminal, and individual editing commands must therefore be sent in separate transmissions from a terminal to the processor upon which the general-purpose editing program or the special purpose program is executing. The separate transmissions contain far less data than the maximum amount which could be included in such a transmission, resulting in an inefficient use of the network.
In order to make more efficient use of a network, the art has provided limited data display and modification capabilities for individual terminals. In a terminal with such a capability, data display and modification is carried out by sending all of the data to be displayed and modified in a single transmission from a central processor to the terminal memory, performing modifications, and then returning modified data in a single transmission to the central processing unit. However, the price for efficient use of the network has been restricting all programs which use the terminal to a single set of data display and modification operations provided by the terminal.
The present invention provides improved data display and modification apparatus with features which solve the above-mentioned problems of the prior art.